Reti Ethernet
di Ciro ESPOSITO
Modello di rete Ethernet
Una
rete Ethernet può essere costruita usando diversi tipi di supporto fisico: dai
cavi coassiali (ormai in disuso) agli UTP (Unshielded Twisted Pair),
cavi costituiti da 8 fili attorcigliati tra loro. Simili agli UTP, ma più
economici, sono i cavi piatti da 8 fili: essi somigliano molto ai cavi usati
per collegare il telefono alla presa, solo che sono più larghi. Ci sono due
diversi connettori che possono essere usati, a seconda del tipo di cavo scelto.
I cavi coassiali hanno bisogno di connettori in metallo chiamati BNC, mentre i
cavi UTP e quelli piatti usano connettori in plastica chiamati RJ-45.
Esaminiamo
ora la topologia di rete, che è diversa a seconda del tipo di cavo: se
si usano cavi coassiali, ogni tratto di cavo va connesso al successivo, in modo
da formare una singola linea che attraversa ogni PC. Fra una tratta e l'altra
si interpone un connettore a "T", le cui estremità sono collegate a
due tratte e al PC.
Infine,
l'inizio e la fine della linea devono essere terminate, cioè occorre
inserire un apposito "tappo" alle estremità dei due connettori a
"T" ai capi della linea. La disposizione finale dei cavi, si chiama generalmente topologia a bus.
Usando
invece cavi UTP o piatti occorre stendere un cavo a partire da ogni PC della
rete; tutti cavi devono poi confluire verso un dispositivo concentratore
chiamato per l’appunto hub. La topologia risultante è chiamata
a
stella.
Entrambi
i metodi presentano vantaggi e svantaggi: il principale svantaggio della
topologia a bus è che il guasto di uno solo dei collegamenti causa il blocco
dell'intera rete. Il suo principale vantaggio, d'altra parte, è che si possono
aggiungere PC a piacimento (o quasi) semplicemente aggiungendo un nuovo
tratto di cavo coassiale ad una delle estremità e spostando il tappo
terminatore. La topologia a stella è più robusta, avendo un collegamento
dedicato per ciascun computer collegato; e se uno di essi si guasta, solo un
computer resta tagliato fuori. Inoltre, i guasti si possono individuare più
facilmente perché il collegamento rotto è immediatamente riconoscibile.
Lo
svantaggio è la necessità di avere un dispositivo aggiuntivo per installare la
rete, che causa un leggero sovrapprezzo. Infine, l'hub ha un numero di porte limitato
e, una volta che esse siano esaurite, occorre acquistarne uno nuovo per
espandere la rete. In caso ce ne sia bisogno, è possibile avere due gruppi di
computer, uno collegato con cavi coassiali e l'altro con UTP: i due gruppi
possono formare una rete unica connettendo l'hub alla linea dei cavi coassiali
come un nodo qualsiasi.
La
velocità dei dati (o rate) che può essere raggiunta su reti Ethernet
varia molto a seconda del numero di computer connessi. In teoria, ci sono due
rate nominali: 10 Mbit/s e 100 Mbit/s. La seconda velocità richiede schede di
rete e cavi di migliore qualità (e leggermente più costosi). Il rate effettivo
al quale i dati saranno poi trasmessi può raggiungere anche il 90% del rate
nominale, ma questo valore diminuisce molto rapidamente all'aumentare del
numero di computer connessi alla rete. Il motivo di questo comportamento è che
tutti i computer condividono lo stesso mezzo fisico (sia esso il cavo coassiale
o l'hub), e quando uno di essi trasmette tutti gli altri devono restare in
silenzio e ascoltare. Non c'è limite al rallentamento causato da questa
contesa, e il rate può facilmente raggiungere zero in condizioni estreme. Oggi
giorno gli Hub vengono utilizzati per piccole reti in uffici che al massimo
collegano una decina di PC.
Un'altra
conseguenza della condivisione del mezzo fisico è che quando un computer
trasmette qualcosa, tutti gli altri in realtà la ricevono. Nella maggior parte
dei casi, tutti ignoreranno la trasmissione eccetto il vero destinatario del
messaggio: questo un è metodo immediato per garantire la comunicazione tra due
computer. Vedremo maggiori dettagli in proposito tra breve.
Per
ovviare ai problemi introdotti dagli Hub, esistono dei dispositivi
“intelligenti” chiamati switch che oltre a segmentare la rete, e quindi a
stabilire una connessione punto – punto fra due PC che si devono scambiare
i dati, offrono performance di alto
livello alla rete, per una serie di prestazioni che sono in grado di dare.
Il
principale vantaggio di uno switch rispetto ad un Hub è dato dal fatto che su
ogni presa a cui viene collegato un PC è disponibile l’intera larghezza di
banda dichiarata dal costruttore, che a differenza di un Hub non deve essere
condivisa fra il numero di PC collegati nella rete. Quindi siamo in presenza di
una rete ad alta velocità, pochissime collisioni, maggior sicurezza per quanto
riguarda la possibilità che ci vengano “catturati” i dati da qualche
fantomatico sniffer collegato in qualche punto della rete.
Avremo
modo di approfondire alcuni concetti sugli switch quando andremo a trattare
nello specifico i prodotti attivi delle reti.
Schede
di rete
Per
collegare i computer alla rete, ognuno di essi deve essere dotato di una scheda
di rete: tali schede sono del tutto simili alle altre già presenti nel PC, e
presentano un paio di connettori sul retro. La maggior parte delle schede ha
sia il connettore BNC che quello RJ-45, mentre alcune hanno solo uno dei due.
Ogni scheda di rete è identificata da un indirizzo unico, detto indirizzo
fisico (MAC ADDRESS) lungo 48 bit, che è codificato nell'hardware della scheda
stessa e non può essere cambiato. Dunque, ogni scheda nel mondo ha sicuramente
un indirizzo differente. Questo significa che si potrebbe identificare il
proprio computer semplicemente tramite l'indirizzo della sua scheda di rete, e
lo si potrebbe trovare indipendentemente dalla sua locazione. Anche se questo è
certamente vero, ci sono modi molto più comodi per identificare un computer.
L'indirizzo codificato nella scheda di rete è spesso chiamato "indirizzo
hardware", indirizzo Ethernet, oppure indirizzo MAC. Quest'ultima
definizione deriva da Medium Access Control, che e' il nome della parte
inferiore del livello 2 nella pila OSI. Infatti, si può facilmente vedere che
le schede di rete di cui stiamo parlando occupano i livelli 1 e 2 della pila.
Ancora protocolli
Parlando
di schede Ethernet, la maggior parte delle volte si parla di reti TCP/IP:
questo significa che la pila di protocolli della rete usa Ethernet come
supporto fisico e tecnologia di collegamento (livelli 1 e 2), l'IP Internet
Protocol come protocollo di rete (livello 3) e TCP (Transport Control
Protocol) come protocollo di trasporto (livello 4). Questo potrebbe
sembrare complicato, ma in realtà è solo una questione di separare i compiti.
In particolare, uno dei compiti di IP è identificare i computer di tutta
Internet assegnando loro un indirizzo numerico. Un altro importante compito di
IP è preparare i pacchetti con i dati da trasmettere, e decidere quale percorso
debbano seguire per raggiungere la destinazione. L'indirizzo fornito da IP è
lungo 4 byte, e di solito viene scritto come quattro numeri separati da punti:
per esempio, 10.0.0.1 e 192.168.9.1 sono entrambi indirizzi IP validi.
La
ragione per la quale serve un indirizzo in più, quello IP, in aggiunta a quello
Ethernet, è che Ethernet non è stata progettata per congiungere diverse reti
locali: è molto facile avere due computer in comunicazione su Ethernet, ma
sarebbe impossibile farli parlare se fossero su reti "fisiche" (ovvero
cavi) differenti e non ci fossero gli indirizzi IP.
Diciamo
che IP ha più intelligenza di Ethernet, e può aiutare i pacchetti a
trovare la strada verso il computer destinazione anche se esso è fisicamente
posto molto lontano da quello sorgente. Quindi, quando un pacchetto è trasmesso
sulla rete locale viene usato il suo indirizzo Ethernet, mentre l'indirizzo IP
è utile se il pacchetto deve attraversare diverse reti per arrivare a
destinazione.
La
cosa più importante da sapere a proposito dell'indirizzo IP (a parte
l'indirizzo stesso, naturalmente) è la cosiddetta netmask ad esso
associata.
Le
funzioni addizionali svolte da IP si basano sui concetti di indirizzo di
host (dove per host si intende un computer connesso in rete) e indirizzo
di rete .
Il
primo è semplicemente l'indirizzo IP del computer, mentre il secondo è
l'indirizzo della rete locale in cui esso risiede.
L'indirizzo
di rete si ottiene dall'indirizzo del computer "applicando" ad esso
la netmask.
Un
esempio chiarirà questo oscuro concetto: supponiamo che l'indirizzo IP del
computer sia 192.168.9.4, e che la netmask associata sia 255.255.255.0.
Convertendo entrambi i numeri in notazione binaria, si vedrà che la netmask è
una sequenza di 24 "uno" seguiti da 8 "zeri". Applicare la
netmask vuole dire effettuare l'operazione di AND logico tra maschera e
indirizzo: è facile vedere che il risultato è uguale all'indirizzo IP stesso
dove la maschera contiene "1", e zero altrove.
Quindi,
nel nostro esempio, l'indirizzo di rete sarebbe 192.168.9.0. Affinché due computer
sulla stessa rete locale possano comunicare, essi devono avere lo stesso
indirizzo di rete. Se i loro indirizzi di rete fossero differenti, allora
occorrerebbe uno speciale dispositivo chiamato router per
interconnetterli.
E'
facile capire che ogni computer in rete ha due diversi indirizzi: il primo,
quello Ethernet, è codificato sulla scheda di rete, mentre il secondo, quello
IP, è assegnato dal protocollo IP. In pratica, l'indirizzo Ethernet non si usa
mai, dato che l'interazione con la rete può essere gestita usando solo
indirizzi IP. Sarà il sistema operativo ad occuparsi della conversione. E'
interessante vedere come questa conversione sia fatta, per approfondire alcuni
dettagli della comunicazione tra computer.
Comunicare su Ethernet
Supponiamo
di avere una piccola rete locale, composta da quattro computer chiamati A, B, C
e D . Supponiamo inoltre che gli indirizzi IP di questi computer siano
192.168.9.x, dove x è 1 per A, 2 per B, 3 per C e 4 per D.
Naturalmente i quattro computer hanno anche un indirizzo Ethernet, che per il momento fingeremo di ignorare.
Quando
la rete è utilizzata per la prima volta, nessuno conosce gli indirizzi Ethernet
degli altri, mentre gli indirizzi IP sono noti (di solito sono scritti in un
file, come vedremo nel prossimo paragrafo).
Supponiamo
ora che A voglia comunicare con C: la prima cosa fatta da A è cercare
l'indirizzo IP di C, che si trova nel file sopra menzionato. Avendo scoperto
che l'indirizzo è 192.168.9.3, A inizia una procedura chiamata ARP (Address
Resoluion Protocol) per ottenere il "vero" indirizzo di C (quello
Ethernet).
Innanzitutto,
un "frame" di dati (cioè una manciata di byte) viene trasmesso da A
sul cavo, dove tutti gli altri computer possono riceverlo. Il frame di dati
contiene una semplice richiesta: chiunque abbia l'indirizzo IP 192.168.9.3, è
pregato di comunicare il proprio indirizzo Ethernet ad A.
Naturalmente,
l'indirizzo Ethernet di A è scritto nel frame, in modo che le risposte possano
raggiungerlo. Vediamo cosa succede dopo: tutti i computer vedono la richiesta
di A, ma B e D la ignorano in quanto il loro indirizzo IP non è quello
specificato. Solo C, che riconosce il proprio indirizzo IP, risponderà inviando
sul cavo un nuovo frame di dati, contenente l'indirizzo Ethernet di A (che C ha
imparato dalla richiesta) e quello di C. Nuovamente, B e D ignoreranno questo
frame in quanto contiene come indirizzo destinatario quello di A. A catturerà
il frame, e leggerà in esso l'indirizzo Ethernet di C. La procedura di ARP è così
completa, e il risultato è che A e C conoscono i reciproci indirizzi Ethernet
(e li hanno associati ai rispettivi indirizzi IP). La comunicazione vera e
propria può cominciare, e tutti i dati inviati da A a C (e viceversa) saranno
diretti all'indirizzo Ethernet corretto.
Questa
procedura è completamente trasparente per l'utente, che deve semplicemente
conoscere l'indirizzo IP. In pratica, molto spesso l'utente non deve nemmeno
ricordare l'indirizzo IP: un file su ogni computer mantiene l'associazione tra nomi
(come A e C, o più spesso come A.miodominio.com) e indirizzi IP per la rete
locale. La stessa associazione per indirizzi di reti esterne (non locali) è
fatta utilizzando un protocollo chiamato DNS, la cui descrizione è ben oltre lo
scopo di questo articolo.
Sarà
sufficiente sapere che la conversione tra un nome e un indirizzo IP è
automatica, e che non ha niente a che vedere con Ethernet. La seconda
conversione, tra indirizzo IP e indirizzo Ethernet, è fatta con ARP e si affida
pesantemente alla particolare caratteristica di Ethernet, grazie alla quale
ogni computer può "sentire" tutti gli altri. Senza questa
caratteristica, si può facilmente capire che la procedura di ARP sarebbe
impossibile.